package homework;

import java.util.Scanner;

// 幸运数
public class F02 {

    public static void main(String[] args) {
//        Scanner scanner = new Scanner(System.in);
//        int n = scanner.nextInt();
//        int count = 0;
//        for (int i = 1; i <= n; i++) {
//            // 求十进制中的各位数之和
//            int s1 = sumToTen(i,0);
//            // 求二进制中的各位数之和
//            // 转为二进制
////            i = toTwo(i);
//            String s = Integer.toBinaryString(i);
//            int s2 = sumToTen(Integer.parseInt(s),0);
//            if (s1==s2){
//                count++;
//            }
//        }
//        System.out.println(count);
//        System.out.println(toTwo(123));
//        System.out.println(two2(123,0,0));
        test(123);
    }

    private static int toTwo(int i) {
        int t=0;
        int res = 0;
        int r = 0;
        while (i!=0){
            r = i%2;
            res+=r*Math.pow(10,t);
            i/=2;
            t++;
        }
        return res;
    }


    private static int sumToTen(int x,int sum) {
        if (x<=0){
            return sum;
        }
        return sum+x%10+sumToTen(x/10,sum);
    }
 static String res="";
    private void  two(int x){
       if (x<0){
           return;
       }
       toTwo(x/2);
       res+=x%2;
    }


    private static int  two2(int x,int res,int t){
        if (x<=0){
            return res;
        }
        res+=x%2*Math.pow(10,t);
       return two2(x/2,res,t+1);
    }

    private static void test(int x){
        int res = 0;
        while (x!=0){
            System.out.println(x%2);
            res +=x%2;
            x/=2;
        }
        System.out.println("二进制位的和"+res);
    }
}
